Method and system for trunk independent gateway transfer of calls

ABSTRACT

Techniques for providing a method and system for trunk independent gateway transfer of calls are disclosed. In one particular exemplary embodiment, the techniques may be realized as a computer implemented method, comprising receiving a call transfer request for a call at a gateway and determining, using a processor of the gateway, whether a trunk to be used for transferring the call requires a transfer command. In the event the trunk requires transfer command, the techniques comprise generating a transfer command, and transferring the call using the transfer command.

CROSS REFERENCE TO RELATED APPLICATION

The subject application is a Continuation Application of U.S.application Ser. No. 12/339,575, filed Dec. 19, 2008, which is herebyincorporated by reference in its entirety.

BACKGROUND INFORMATION

Interactive Voice Response Systems (IVRs), Automated Call Distribution(ACD) Systems, Voice Portals and other telecommunications interactionand management systems are increasingly used to provide services forclients, employees and other users. Such systems may frequently becommunicatively coupled to one phone or data network and may becommunicatively coupled to other networks by a gateway. For example, anInteractive Voice Response (IVR) System of a service provider may becommunicatively coupled to an Internet Protocol (IP) based network andmay be communicatively coupled to one or more circuit switched networksvia one or more gateways. The IVR System may receive a call to betransferred across a gateway via a trunk to a destination number. TheIVR System may not know the type of a trunk to be used for thedestination call. Different types of trunks may require different callsignaling mechanisms. Thus, some IVR Systems may not be able to transfercalls to some trunks and may use work around mechanisms such as thegateway initiating a second call and conferencing the two callstogether. The inability to transfer a call may lead to the use ofadditional connections and may require a call to continue the use ofInteractive Voice Response (IVR) System resources and/or gatewayresources as the call may be routed through these resources instead oftransferred off of them.

Furthermore, a gateway may be capable of utilizing two or more differenttypes of trunks. IVR Systems, ACD Systems, Voice Portals and othertelecommunications interaction and management systems, however, may nothave information about the type of trunk to be used for the destinationcall. These Automated Call Distribution (ACD) Systems, Voice Portals orother telecommunications interaction and management system may attemptto transfer a call to a destination number in a format compatible for afirst type of trunk but the transfer may fail if the trunk used is asecond type of trunk. For example, a first type of trunk may use twochannels: a data or bearer channel and a control channel. A second typeof trunk may use a single channel with in-band signaling, such as one ormore dual-tone multi-frequency (DTMF) tones. A gateway may receive thecall and may know how to transfer the call to a first type of trunk withtwo channels but may not know how to transfer to a second type of trunkusing in-band signaling. Thus if the call is destined for the secondtype of trunk requiring in-band signaling, the call may be dropped.Accordingly, gateways may be incapable of transferring a call to a calldestination back on an originating network or other network, such as acircuit switched telephone network.

BRIEF DESCRIPTION OF THE DRAWINGS

In order to facilitate a fuller understanding of the exemplaryembodiments, reference is now made to the appended drawings. Thesedrawings should not be construed as limiting, but are intended to beexemplary only.

FIG. 1 is a schematic of a trunk independent gateway transfer system, inaccordance with an exemplary embodiment;

FIG. 2, depicts a block diagram of a gateway transfer module for a trunkindependent gateway transfer system, in accordance with an exemplaryembodiment; and

FIG. 3 depicts a flow chart for a method for implementing a trunkindependent gateway transfer system, in accordance with an exemplaryembodiment.

DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS

Reference will now be made in detail to exemplary embodiments, examplesof which are illustrated in the accompanying drawings. It should beappreciated that the same reference numbers will be used throughout thedrawings to refer to the same or like parts. It should be appreciatedthat the following detailed description are exemplary and explanatoryonly and are not restrictive.

An exemplary embodiment provides a trunk independent gateway transfersystem to one or more networks. The trunk independent gateway transfersystem may present improved call handling for one or more users of thetrunk independent gateway transfer system. For example, a trunkindependent gateway system may enable the transfer of a call to one ormore trunk types on a circuit switched network without requiring atransfer requesting system to be aware of the trunk type. This mayenable the usage of a single format of call transfer request regardlessof the type of trunk being used for a transferred call.

Referring to FIG. 1, a trunk independent gateway transfer system inaccordance with an exemplary embodiment is illustrated. System 100illustrates an exemplary system for improving call handling at agateway. It is noted that system 100 is a simplified view of a networkand may include additional elements that are not depicted. Asillustrated, the system 100 may include one or more networks, such asnetwork 104 and network 108. Networks 104 and 108 may be communicativelycoupled to the gateway 106 via trunk 120 and trunk 122. One or moretelecommunication devices 102 a and 102 b may be communicatively coupledto networks 104 and 108. Other network elements, such as networkelements 110, 112, 114, 116, and 118 may be communicatively coupled tonetworks 104 and/or 108.

The telecommunication devices 102 may be a wireline phone, a wirelessphone, a satellite phone, Personal Digital Assistant (PDA), computer, orother telecommunications enabled devices. The telecommunication devices102 may be communicatively coupled to the network 104 and 108. Thetelecommunication devices 102 and network elements 110, 112, 114, 116and 118 may send and receive data using one or more protocols. Forexample, data may be transmitted and/or received using WirelessApplication Protocol (WAP), Multimedia Messaging Service (MMS), EnhancedMessaging Service (EMS), Short Message Service (SMS), Global System forMobile Communications (GSM) based systems, Time Division Multiplexing(TDM) based systems, Code Division Multiple Access (CDMA) based systems,Transmission Control Protocol/Internet (TCP/IP) Protocols, or otherprotocols and/or systems suitable for transmitting and receiving data.Data may be transmitted and/or received wirelessly or may use cablednetwork connections or telecom connections such as an EthernetRJ45/Category 5 Ethernet connection, a fiber connection, a traditionalphone wireline connection, a cable connection or other wired networkconnection. Network elements 110, 112, 114, 116, and 118 may usestandard wireless protocols including IEEE 802.11a, 802.11b and 802.11g.Network elements 110, 112, 114, 116, and 118 may also be communicativelycoupled via protocols for a wired connection, such as an IEEE Ethernet802.3.

Networks 104 and 108 may be local area networks (LAN), wide areanetworks (WAN), the Internet, a Public Switched Telephone Network(PSTN), cellular networks, satellite networks, or other networks thatpermit that transfer and/or reception of data.

Network elements 110, 112, 114, 116, and 118 may each be one or moreservers (or server-like devices), such as a Session Initiation Protocol(SIP) server. Network elements 110, 112, 114, 116, and 118 may betelecom switches, Private Branch Exchanges (PBXs), Voice Response Units(VRUs), announcement servers, voice mail servers and/or voice portals.Network elements 110, 112, 114, 116, and 118 may be VoIP (Voice OverInternet Protocol) enabled devices. Network elements 110, 112, 114, 116,and 118 may include one or more processors (not shown) for recording,transmitting, receiving, and/or storing data. Although network elements110, 112, 114, 116, and 118 are depicted as individual servers, itshould be appreciated that the contents of network elements 110, 112,114, 116, and 118 may be combined into fewer or greater numbers ofservers (or server-like devices) and may be connected to one or moredata storage systems (not shown). Data storage systems may be local orremote to network elements 110, 112, 114, 116, and 118.

The gateway 106 may be a media gateway interconnecting two or morenetworks. For example, the gateway 106 may enable the routing of callsand other data between a first network 104 and a second network 108. Thegateway 106 may include one or more processors, such as processor 124,to enable routing determinations and other determinations. The gateway106 may contain or be communicatively coupled to other components (notshown) such as storage, memory, and/or one or more interfaces. Thegateway 106 may enable the routing of calls between different networktypes such as between a circuit switched network and a packet switchednetwork. In one or more embodiments, the gateway 106 may be replaced bya switch (not shown) connecting two IP networks. In other embodiments,the gateway 106 may be replaced by a switch (not shown) connecting twocircuit switched networks. In some embodiments, the gateway 106 may bereplaced by a switch (not shown) connecting two portions of the samenetwork. Although network 108 is depicted as having a single gateway 106communicatively coupled to two trunks, in one or more embodiments, aplurality of gateways may be connected to network 108 each containingone or more trunks.

In one or more embodiments, network 104 may represent a circuit switchednetwork and network 108 may be a IP based network. Gateway 106 mayreceive one or more call transfer requests from one or more networkelements communicatively coupled to network 108. For example, networkelement 114 may be an Interactive Voice Response System (IVR), anAutomated Call Distribution (ACD) System, a Voice Portal or othertelecommunications interaction and management system. Out-of bandsignaling trunk 122 may be a trunk utilizing Two B Channel Transfer(TBCT) or other out of band signaling mechanisms for one or more calltransfers. In-band signaling trunk 120 may be a trunk utilizing in-bandcall signaling. Network element 114 may receive a call from a user attelecommunications device 102 a. Network element 114 may make adetermination to transfer a call to network element 110, a PrivateBranch Exchange (PBX) associated with a call center, via trunk 120.Network element 110 may not have a way to determine the type of a trunk.Gateway 106 upon receipt of a call transfer request may identify thetrunk to be used for routing the call. After identifying the trunk,gateway 106 may determine the type of trunk to be used. Depending on thetype of trunk, gateway 106, may facilitate in-band and/or out-of-bandsignaling to complete the call transfer. In the above example, trunk 120may be a trunk utilizing in-band signaling such as the use of one ormore dual-tone multi-frequency (DTMF) tones. Gateway 106 may generate,download, receive, and/or concatenate one or more tones for use within-band signaling.

In one or more embodiments, gateway 106 may receive destinationinformation from a call transfer request. Gateway 106 may parse a calltransfer request to determine a call destination, a trunk to use and/orother information. For example, network 108 may be a network utilizingSession Initiation Protocol (SIP). Gateway 106 may receive a calltransfer request as a Session Initiation Protocol (SIP) refer message(e.g., a call transfer request compliant with RFC 3515). The SessionInitiation Protocol (SIP) refer message may contain routing informationused by the gateway to transfer the call. Gateway 106 may then generatetransfer information such as in-band signaling to transfer the call fortrunks utilizing in-band signaling. If a call is to be transferred to atrunk utilizing a secondary or D (data) channel for signaling, gateway106 may generate, request, receive or otherwise obtain the appropriateout-of-band control signaling to transfer the call.

In one or more embodiments, a gateway, such as gateway 106, mayassociate an application with a trunk. When a call is routed for atrunk, the application may be initiated and may use one or moreparameters which may be provided by the gateway. For example, gateway106 may contain a trunk group (not shown) associated with a trunk.Associated with the trunk group may be another logical subdivision, suchas dial pairs. An application may be associated with the dial pairs,such that a call destined for the portion of the trunk associated withthe dial pairs initiates the application. For example, a Tool CommandLanguage (TCL) script may be used. The TCL script may parse one or moretransfer requests, such as a SIP refer message received from an IVRsystem, and may use routing information contained in the transferrequest to generate transfer information.

In one or more embodiments, gateway 106 may determine transferinformation utilizing Dialed Number Identification Service (DNIS)information associated with a call, a lookup table, an array, adatabase, an interface to a local or remote system, mapping rules orother mapping methods. For example, if a transfer request is receivedand contains incomplete, incorrect, or no information to generate thetransfer, gateway 106 may map the call to a destination. In one or moreembodiments, gateway 106 may use a default location based on a transferrequestor. As an example, gateway 106 may receive a call transferrequest from network element 114, which may be an IVR system. Gateway106 may route one or more calls received from network element 114 tonetwork element 110 and may generate the corresponding transferinformation. In one or more embodiments, gateway 106 may lookup transferinformation utilizing information, such as DNIS information associatedwith the call being transferred.

The various components of the system 100 as shown in FIG. 1 may befurther duplicated, combined and/or integrated to support variousapplications and platforms. Additional elements may also be implementedin the systems described above to support various applications.

Referring to FIG. 2, a gateway transfer module 210 for improved gatewaycall handling is depicted, in accordance with an exemplary embodiment.As illustrated, the gateway transfer module 210 may contain one or morecomponents including a gateway monitoring module 212, a call mappingmodule 214, a call transfer module 216, and an error handling module218. The gateway transfer module 210 may improve call handling fortransfer requests.

The gateway monitoring module 212 may monitor calls to determine if theymeet one or more conditions. The gateway monitoring module 212 mayidentify transfer requests or failed transfer calls. The gatewaymonitoring module 212 may identify to the call mapping module 214 callrequests that require a transfer or failed transfer calls.

The call mapping module 214 may use information in a call transferrequest to determine call destination information. For example, a calltransfer request may be a SIP refer request which may contain calldestination information to be parsed by the call mapping module 214. Inone or more embodiments, the call mapping module 214 may receive one ormore call attributes or DNIS information associated with a call. Thecall mapping module 214 may use call attributes, DNIS information, orother information to query a lookup table, an array, a database, aninterface to a local or remote system, mapping rules or other mappingmethods to determine one or more call destinations. Mapping rules orlogic may use a time of day, a call origination geographic location, acall destination geographic location, a load or utilization of analternate call destination, caller information associated with a call,priority information associated with a call, or other factors todetermine one or more call destinations. In some embodiments, the callmapping module 214 may provide one or more default call destinations.Once a call destination is identified, the call transfer module 216 maybe used to transfer the call.

The call transfer module 216 may receive one or more alternate calldestinations from the call mapping module 214. The call transfer module216 may identify a trunk to be used for a call destination and maydetermine if one or more actions should be taken to transfer the call.The call transfer module 216 may reside on a gateway or may query agateway to determine a trunk and/or a trunk type. The gateway mayidentify the trunk based on the call destination. The call transfermodule 216 may identify a type of trunk and a corresponding controlsignaling format used for the type of trunk. For example, the calltransfer module 216 may determine that trunk 120 may be a trunkutilizing in-band signaling such as the use of one or more dual-tonemulti-frequency (DTMF) tones. The call transfer module 216 may thengenerate, download, receive, and/or concatenate one or more tones foruse in in-band signaling. The call transfer module 216 may concatenateaudio files to provide a single audio file enabling the playing of theaudio file to generate a transfer. The call transfer module 216 may thenplay the tones on the trunk to complete the transfer. In other examples,other techniques, such as Session Initiation Protocol (SIP) callsignaling and setup techniques may be used. In one or more embodiments,call transfer module 216 may cancel an original transfer and transferthe a call to an alternate call destination (e.g., perform a “take backand transfer.”)

In one or more embodiments, the call transfer module 216 may determinethat a trunk, such as trunk 122, uses a secondary or D (data) channelfor signaling. The call transfer module 216 may generate, request,receive or otherwise obtain the appropriate out-of-band controlsignaling to transfer the call.

In one or more embodiments, a gateway and/or an application residing ona gateway may accept a single format of transfer request from an IVRSystem, an ACD System, a Voice Portal and/or other telecommunicationsinteraction and management systems. This may enable such systems torequest a transfer call without knowledge of the type of trunk to beused or its respective signaling and/or communication requirements.Enabling call transfer to a plurality of trunk types using a uniformtransfer request type may reduce complexity and overhead in connectionsbetween networks, such as between IP based networks and circuit switchednetworks. A uniform transfer request type may also reduce dropped callsand other errors. A uniform transfer request format may reduce the needfor conferencing multiple calls together. Enabling call transfers for aplurality of trunk types may reduce practices such as continuing toroute calls through a gateway and/or an IVR System after the IVR Systemhas completed its call handling and conferenced in a call destination.Call transferring may thus reduce traffic and wasted connections byenabling the transferred call to be routed more directly between thecaller and the destination.

The error handling module 218 may respond to one or more errorsassociated with a call transfer request and/or a call transfer. Theerror handling module 218 may enable error trapping and one or moreerror handling actions. In some embodiments, the error handling module218 may provide information about a failed network component such as thefailure of one or more of network elements 110, 112, 114, 116, and/or118. The error handling module 218 may provide information about one ormore call routing errors.

FIG. 3 depicts a flowchart of a method for implementing a gatewaytransfer system 300, according to an exemplary embodiment. The exemplarymethod 300 is provided by way of example, as there are a variety of waysto carry out methods disclosed herein. The method 300 shown in FIG. 3may be executed or otherwise performed by one or a combination ofvarious systems. The method 300 is described below as carried out by thesystem 100 shown in FIG. 1 and the gateway transfer module 210 shown inFIG. 2 by way of example, and various elements of the FIGS. 1 and 2 arereferenced in explaining exemplary method 300 of FIG. 3, and variouselements of FIG. 1 and FIG. 2 are referenced in explaining the exemplarymethod of FIG. 3. Each block shown in FIG. 3 represents one or moreprocesses, methods, or subroutines carried in the exemplary method 300.A computer readable media comprising code to perform the acts of themethod 300 may also be provided. Referring to FIG. 3, the exemplarymethod 300 may begin at block 302.

At block 304, a call transfer request may be received at a gateway, suchas gateway 106. Some gateways may contain a single trunk associated withthem and other gateways may contain a plurality of trunks.

At block 306, a trunk may be identified to be used for routing the call.The type of the identified trunk may be determined. For example, gateway106 may identify the type of trunk to be used based on the configurationof the trunk at the gateway.

At block 308, the control signaling or other formatting used for a calltransfer is identified. For example, an application or logic associatedwith gateway 106 may provide a mapping of trunk types to controlsignaling or other formatting used for a call transfer. In someembodiments, logic may be associated with each individual trunk of agateway and may contain signaling information specific to that trunk. Ifthe corresponding trunk type uses in-band signaling, such as trunk 120,the method 300 may continue at block 314. If corresponding trunk typeuses out-of-band signaling, such as trunk 122, the method may continueat block 310.

At block 310, a determination may be made as to whether a call transferrequires other preparation or generation of transfer information. Thetype of trunk, the type of gateway, the type of origin network, or otherfactors may determine whether generation of other transfer informationis required. If additional call transfer preparation is required themethod 300 may continue at block 312. If no additional call transferpreparation is required the method 300 may continue at block 324.

At block 312, additional call transfer preparation may be performed. Inone or more embodiments, data of a call transfer request may be parsedand out-of-band control signaling information may be generated. In oneor more embodiments, gateway 106 and/or call mapping module 214 mayparse a call transfer request to identify a call destination. Gateway106 and/or call transfer module 216 may prepare call transfer signalinginformation. For example, the method may prepare call transfer signalinginformation for trunk 122 which may be a trunk utilizing Two B ChannelTransfer (TBCT) or other out of band signaling mechanisms.

At block 314, a determination may be made as to whether a call transferrequest contains sufficient routing information to generate calltransfer information. If the call transfer request contains sufficientrouting information to generate call transfer information the method 300may continue at block 322. For example, an application running ongateway 106 may parse a call transfer request, which may be a SIP referrequest. In some embodiments, if a call transfer request does notcontain sufficient routing information, an error may be returned to thecall transfer requestor (e.g., an IVR system or an ACD system). In oneor more embodiments, if the call transfer request does not containsufficient routing information to generate call transfer information themethod 300 may continue at block 316.

At block 316, a determination may be made as to whether other routinginformation is available to handle a call transfer request. For example,a gateway, such as gateway 106, may use a lookup table, an array, adatabase, an interface to a local or remote system, mapping rules orother mapping methods to determine one or more call destinations. Ifother routing information is available to handle a call transferrequest, the method 300 may continue at block 318. If other routinginformation is not available to handle a call transfer request, themethod 300 may continue at block 320.

At block 318, routing tables, interfaces, call request attributes, callinformation (e.g., DNIS information), transfer requestor information,call origination information and/or logic may be used to obtain othercall routing information. For example, gateway 106 may use attributesassociated with a call, such as an originating phone number, todetermine call routing information.

At block 320, calls for which call routing information has not beenidentified may be dropped. In one or more embodiments, error messagesmay be returned to a call transfer requestor and/or a call initiator.For example, if call routing information has not been identified agateway may drop a call, play an error message to a caller (e.g.,redirect a call to an announcement server (not shown)), or route a callto a default call handling center.

At block 322, call transfer information may be generated. For example,gateway 106 and/or call transfer module 216 may generate transferinformation. For calls routed on trunks utilizing in-band signaling, oneor more DTMF tones may be generated. For calls routed on trunksutilizing in-band signaling, the in-band signaling may be stored as anaudio file. For calls routed on trunks utilizing out-of-band signalingother control signaling information may be generated.

At block 324, the call may be transferred. For example, gateway 106 maytransmit signaling information generated as described in block 322 whichmay permit the call to be transferred.

At block 326, the method may end.

In the preceding specification, various preferred embodiments have beendescribed with reference to the accompanying drawings. It will, however,be evident that various modifications and changes may be made thereto,and additional embodiments may be implemented, without departing fromthe broader scope of the invention as set forth in the claims thatfollow. The specification and drawings are accordingly to be regarded inan illustrative rather than restrictive sense.

The invention claimed is:
 1. A computer implemented method, comprising:receiving a call transfer request for a call at a gateway; identifying,using a processor of the gateway, a call destination trunk type; anddetermining, using the processor of the gateway, control signalingassociated with the call destination trunk type.
 2. The method of claim1, wherein determining the control signaling associated with the calldestination trunk type comprises determining whether the calldestination trunk type uses in-band signaling or out-of-band signaling.3. The method of claim 2, further comprising: if the call destinationtrunk type uses out-of-band signaling, determining whether additionalcall transfer information is required based on at least one of the typeof trunk, the type of gateway, and the type of origin network.
 4. Themethod of claim 3, further comprising generating out-of-band controlsignaling information.
 5. The method of claim 2, further comprising: ifthe call destination trunk type uses in-band signaling, determiningwhether the call transfer request contains sufficient routinginformation to transfer the call; and generating an error message if thecall transfer request does not contain sufficient routing information totransfer the call.
 6. The method of claim 5, further comprisingdetermining whether other routing information is available to transferthe call based on at least one of a lookup table, an array, mappingrules, a local system interface, and a remote system interface.
 7. Themethod of claim 6, further comprising identifying one or more alternatecall destinations.
 8. The method of claim 1, wherein the call transferrequest comprises a Session Initiation Protocol (SIP) refer message. 9.A non-transitory computer readable media containing computer executablecode comprising code to perform the acts of the method of claim
 1. 10. Asystem, comprising: a gateway communicatively coupled to a plurality ofnetworks; one or more trunks communicatively coupled to the gateway; aprocessor communicatively coupled to the gateway, wherein the processoris configured to execute code associated with at least one of the one ormore trunks and the code is configured to cause the gateway to: receivea call transfer request for a call; identify a call destination trunktype; and determine control signaling associated with the calldestination trunk type.
 11. A system, comprising: a network elementcommunicatively coupled to a first network and a second network; aprocessor communicatively coupled to the network element, wherein theprocessor is configured to: receive a call transfer request for a call;identify a call destination trunk type; and determine control signalingassociated with the call destination trunk type.
 12. The system of claim11, wherein the call destination trunk type is identified based on oneor more queries of at least one of a lookup table, an array, a database,a local system interface, a remote system interface, and mapping rules.13. The system of claim 12, wherein at least one of a time of day, acall origination geographic location, a call destination geographiclocation, a load or utilization of an alternate call destination, callerinformation associated with a call or priority information associatedwith a call is used to determine one or more call destinations.
 14. Thesystem of claim 11, wherein the processor is further configured togenerate a transfer command which comprises in-band signaling tones ifthe processor determines that the call destination trunk type usesin-band signaling.
 15. The system of claim 14, wherein the processorgeneration of in-band signaling tones comprises at least one of:downloading one or more Dual-Tone Multi-Frequency (DTMF) tonesassociated with a destination number, generating one or more Dual-ToneMulti-Frequency (DTMF) tones associated with a destination number;receiving one or more DTMF tones associated with a destination number,and concatenating multiple DTMF tones into a single audio file.
 16. Thesystem of claim 14, wherein the processor is further configured togenerate or receive an appropriate out-of-band control signaling totransfer the call upon determining that a secondary channel forsignaling, rather than in-band signaling, is to be used.
 17. The systemof claim 11, wherein the processor is further configured to generate atransfer command using at least one of: default transfer information,dialed number identification service information associated with thecall, and a call mapping data structure.
 18. The system of claim 11,wherein the processor is further configured to cancel an originaltransfer and transfer the call to an alternate call destination.
 19. Thesystem of claim 11, wherein the processor is further configured torespond to one or more errors associated with the call transfer requestby at least one of: error trapping, providing information about a failednetwork component, or providing information about one or more callrouting errors.